package object;

import java.util.Objects;

/*
标准javaBean的规范；
1.成员变量私有化，同时提供对应公开的Better和Setter方法
2.包含 公开的 无参构造方法
 */
public class Point {
    //1.声明私有成员变量
    private int x;
    private int y;

    //2.1声明公开的无参构造方法
    //快捷生成：右键————>Generate-->COnstructor--> select NOne
    public Point() {};

    //2.2声明公开的全参构造
    //快捷生成：右键-->Generate-->Constructor-->选择变量值-->OK
    public Point(int x, int y) {
        this.x = x;
        this.y = y;
    }

    //4.重写tostring（）方法
    //快捷生成：右键-->Generate-->toString()-->选择所有变量-->OK

    public String toString() {
        return "Point(" +
                "x=" + x +
                ",y= " + y +
                ")";
    }

    //4.2 重写equals()方法
    //生成重写方法快捷方式：右键  ---> Generate --> equals() and hashCode()

    public boolean equals(Object o){
        if(this==o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        Point point = (Point) o;
        return x == point.x && y == point.y;
    }


    public int hashCode(){
        return Objects.hash(x, y);
    }


    //3.创建公开的Getter和Setter方法（get方法用于取值，set方法用于修改）
    //补充：生成Getter和Setter的快捷方式如下：
    //右键 --> Generate --> Getter and Setter --> 选择所有变量 --> OK

    public int getX(){
        return x;
    }

    public void setX(int x) {
        this.x = x;
    }

    public int getY() {
        return y;
    }

    public void setY(int y) {
        this.y = y;
    }
}
